package com.hilinos.base.app;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.hilinos.base.api.vo.OrgInfoVo;
import com.hilinos.base.user.entity.pojo.OrgInfoPoJo;
import com.hilinos.common.entity.BaseQo;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.List;

public interface OrgApp {

    /**
     * 创建机构，只允许创建在当前appid下，超管也是
     *
     * @param orgInfo
     */
    void create(OrgInfoPoJo orgInfo);

    /**
     * 查询机构列表
     *
     * @param qo
     * @return
     */
    IPage<OrgInfoPoJo> pageList(@RequestBody BaseQo<OrgInfoPoJo, OrgInfoPoJo, OrgInfoPoJo> qo);

    /**
     * 查询机构信息
     *
     * @param orgId
     * @return
     */
    OrgInfoPoJo detail(String orgId, String appid);

    /**
     * 查询父机构信息
     *
     * @param orgId
     * @return
     */
    OrgInfoPoJo parent(String orgId, String appid);

    /**
     * 查询下一级子机构
     *
     * @param orgId
     * @return
     */
    List<OrgInfoPoJo> child(String orgId, String appid);

    /**
     * 查询所有子机构
     *
     * @param orgId
     * @return
     */
    List<OrgInfoVo> childs(String orgId, String appid);

    /**
     * 编辑机构
     *
     * @param orgInfo
     */
    void edit(OrgInfoPoJo orgInfo);
}
